package ntd.util.frame.action.database.bo;

import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.util.StrUtil;
import lombok.Data;
import ntd.util.config.common.bo.ComDictVo;

import java.util.List;

/**
 * 数据库备注扩展对象
 */
@Data
public class FieldMemoBo {

    /** 原始内容 */
    private String origin;

    /** 名称 */
    private String name;

    /** 字典列表 */
    private List<ComDictVo> comDictVoList;

    /**
     * 转化数据库备注为对象
     * @param memo
     * @return
     */
    public static FieldMemoBo transform(String memo) {
        FieldMemoBo fieldMemoBo = new FieldMemoBo();
        fieldMemoBo.setOrigin(memo);

        List<String> memos = StrUtil.split(memo, "-");

        fieldMemoBo.setName(memos.get(0));
        if (memos.size() > 1) {
            List<ComDictVo> comDictVos = CollStreamUtil.toList(StrUtil.split(memos.get(1), ","), str -> {
                String[] split = str.split(":");
                if (split.length < 2) {
                    return null;
                }
                return new ComDictVo(split[1], split[0]);
            });
            fieldMemoBo.setComDictVoList(comDictVos);
        }
        return fieldMemoBo;
    }
}
